#pragma once
#include "Event.hpp"
#include "Vector2.hpp"
#include <vector>

namespace Typhoon {
	class InputManager {

	public:
		InputManager();
		~InputManager();

		void Update(void* input);

		Vector2 GetPosition(int index);

		struct EventData {
			int Index;
			Vector2 Position;
		};

		Event<EventData> Down;
		Event<EventData> Up;
		
	private:

		struct Input {
			int Index;
			Vector2 Position;
			bool Down;
		};

		std::vector<Input> current;
		std::vector<Input> previous;

	};
}

